package org.tea.inventory.domain.tea;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.util.Date;

/**
 * 小客户信息对象 customer_small_info
 * 
 * @author dongxb
 * @date 2025-04-27
 */

@ApiModel(value = "小客户信息表   会员管理和散客管理")
@Data
@NoArgsConstructor
public class CustomerSmall implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 客户编号 */
    @ApiModelProperty(value = "客户编号")
    private String customerCode;

    /** 客户名称 */
    @ApiModelProperty(value = "客户名称")
    private String customerName;

    /** 客户联系电话 */
    @ApiModelProperty(value = "客户联系电话")
    private String customerPhone;

    /** 性别：0男， 1女 */
    @ApiModelProperty(value = "性别：0男， 1女")
    private String sex;

    /** 性别字符串 */
    @ApiModelProperty(value = "性别字符串")
    private String sexStr;

    /** 注册渠道 */
    @ApiModelProperty(value = "注册渠道")
    private String registerChannel;

    /** 会员生日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "会员生日")
    private Date customerBirthday;

    /** 客户级别 */
    @ApiModelProperty(value = "客户级别")
    private String customerLevel;

    /** 积分余额 */
    @ApiModelProperty(value = "积分余额")
    private Long pointsBalance;

    /** 备注 */
    @ApiModelProperty(value = "备注")
    private String remarks;

    /** 客户类型 1分销商，2企业客户 */
    @ApiModelProperty(value = "客户类型 1会员，2散客")
    private String customerType;

    /** 客户状态：0启用，1停用 */
    @ApiModelProperty(value = "客户状态：0启用，1停用")
    private Integer status;

    /** 客户状态字符串 */
    @ApiModelProperty(value = "客户状态字符串")
    private String statusStr;

    /** 是否删除：0未删除，1已删除 */
    private Integer delFlag;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createDate;

    /** 创建者 */
    @ApiModelProperty(value = "创建者")
    private String createUserId;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
    private Date updateDate;

    /** 更新者 */
    @ApiModelProperty(value = "更新者")
    private String updateUserId;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("customerCode", getCustomerCode())
            .append("customerName", getCustomerName())
            .append("customerPhone", getCustomerPhone())
            .append("sex", getSex())
            .append("registerChannel", getRegisterChannel())
            .append("customerBirthday", getCustomerBirthday())
            .append("customerLevel", getCustomerLevel())
            .append("pointsBalance", getPointsBalance())
            .append("remarks", getRemarks())
            .append("customerType", getCustomerType())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createDate", getCreateDate())
            .append("createUserId", getCreateUserId())
            .append("updateDate", getUpdateDate())
            .append("updateUserId", getUpdateUserId())
            .toString();
    }
}
